const { connect } = require('http2')
//引入模块
const ws = require('nodejs-websocket')
const DS = require("./DataStruct")
const UserAction = require("./UserAction")
//创建服务器
const server = ws.createServer((connect) => {
    console.log('在线人数：' + server.connections.length)
    //向客户端发送信息
    //connect.sendText("hello,welcome")
    //监听消息
    connect.on('text', (str) => {
        //connect.sendText(str)
        // console.log(str);
        // //将收到的消息广播出去
        // server.connections.forEach(connects=>{
        //     if(connects.key!=connect.key){
        //         connect.sendText(str)
        //     }
        // })

        //收到消息时调用
        const msg = JSON.parse(str)

        // if(msg.RequestCode===DS.RequestCode.USER){
        //     if(msg.ActionCode===DS.UserAction.LOGIN){
        //         console.log(msg)
        //     }
        // }
        switch (msg.RequestCode) {
            //用户请求类型
            case DS.RequestCode.USER:
                // console.log("我是用户模块")
                switch (msg.ActionCode) {
                    case DS.UserAction.LOGIN:
                        UserAction.Login(msg.data,connect)
                        break;
                    case DS.UserAction.SIGNUP:
                        UserAction.SignUp(msg.data,connect)
                        break;
                    case DS.UserAction.GET_INFO:
                        UserAction.GetInfo(msg.data,connect)
                        break;
                    case DS.UserAction.UPDATE_INFO:
                        UserAction.UpdataInfo(msg.data,connect)
                        break;
                }
                break;
            //房间请求类型
            case DS.RequestCode.ROOM:
                console.log("我是房间模块")
                break;
            //游戏请求类型
            case DS.RequestCode.GAME:
                console.log("我是游戏模块")
                break;
            //大厅请求类型
            case DS.RequestCode.HALL:
                console.log("我是大厅模块")
                break;
            //主动通知请求类型
            case DS.RequestCode.NOTICE:
                console.log("我是主动通知模块")
                break;
        }
    })

    connect.on('text', (code, reason) => {
        //连接是断开调用
    })
    connect.on('text', (code, reason) => {
        //连接错误时调用
    })
}).listen(8888, () => {
    console.log('服务器启动成功')
})
